#!/bin/bash

# 设置默认值：若环境变量未定义，则使用默认值
lampID=${lampID:-"jack"}  # 默认lampID为"jack"
port=${port:-"/dev/ttyACM0"}  # 默认port为"/dev/ttyACM0"

# 显示帮助信息
show_help() {
    echo "用法：$0 <子命令> [参数]"
    echo "管理录音、列表和回放功能的工具"
    echo
    echo "子命令："
    echo "  save <record_file_name>   录制音频并保存到指定文件"
    echo "  list                      列出所有录音文件"
    echo "  replay <record_file_name> 回放指定的录音文件"
    echo "  -h, --help                显示此帮助信息"
    echo
    echo "环境变量（可自定义）："
    echo "  lampID   设备ID，默认值：'jack'"
    echo "  port     端口路径，默认值：'/dev/ttyACM0'"
    echo
    echo "示例："
    echo "  $0 save my_recording    # 录制并保存为my_recording"
    echo "  lampID='my_lamp' $0 list  # 自定义lampID后列出录音"
    echo "  port='/dev/ttyACM1' $0 replay test  # 自定义端口后回放"
}

# 检查是否提供子命令
if [[ $# -eq 0 ]]; then
    echo "错误：请指定子命令（save/list/replay）"
    echo
    show_help
    exit 1
fi

subcommand="$1"
shift  # 移除子命令，处理后续参数

case "$subcommand" in
    save)
        if [[ $# -ne 1 ]]; then
            echo "错误：save子命令需要指定录音文件名"
            echo "用法：$0 save <record_file_name>"
            exit 1
        fi
        record_name="$1"
        # 使用默认/环境变量的lampID和port
        sudo uv run -m lelamp.record --port "$port" --id "$lampID" --name "$record_name"
        ;;
    list)
        # 列表命令仅需lampID
        sudo uv run -m lelamp.list_recordings --id "$lampID"
        ;;
    replay)
        if [[ $# -ne 1 ]]; then
            echo "错误：replay子命令需要指定录音文件名"
            echo "用法：$0 replay <record_file_name>"
            exit 1
        fi
        record_name="$1"
        # 使用默认/环境变量的lampID和port
        sudo uv run -m lelamp.replay --port "$port" --id "$lampID" --name "$record_name"
        ;;
    -h|--help)
        show_help
        exit 0
        ;;
    *)
        echo "错误：未知子命令 '$subcommand'"
        echo
        show_help
        exit 1
        ;;
esac

